package com.wicket.okrcalc.biz.service.dto.req;

import com.wicket.okrcalc.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @desc ImplementCalcReceiveFieldReqDto
 * @使用场景
 */
@Data
public class ImplementCalcReceiveFieldReqDto
  extends BaseDto
  implements Serializable {

  /**
   * 目标归属周期ID
   */
  @ApiModelProperty("目标归属周期ID")
  private String targetAttributionCycleId;

  /**
   * 主树被评对象内容表主键ID
   */
  @ApiModelProperty("主树被评对象内容表主键ID")
  private String evaObjEntityId;

  /**
   * 主树被评对象类型编码 EVA_PORTRAIT:评价画像 EVA_OBJECT:评价对象 FLEVEL_OBJ_TASK_DUTY_DEPT:一级部门目标任务责任部门 OKR_SUBJECT_DEPT:OKR责任主体部门 OKR_SUBJECT_PERSONAL:OKR责任主体个人
   */
  @ApiModelProperty("主树被评对象类型编码")
  private String evaObjTypeCode;

  /**
   * 被评对象目标周期标识
   */
  @ApiModelProperty("被评对象目标周期标识")
  private String evaObjTargetCycleCode;

  /**
   * 冗余评价模板ID
   */
  @ApiModelProperty("冗余评价模板ID")
  private String evaluationTemplateId;

  @ApiModelProperty("当前及祖先列表 ")
  List<String> curAndAncestorList = new ArrayList<>();
/**
     * 事务内数据更新批次标识 
     */
    @ApiModelProperty("事务内数据更新批次标识")
    private String	 eventBatchUpdateCode;

    /**
     * 计算开始时间 
     */
    @ApiModelProperty("计算开始时间")
    private Date	 calcStartTime;

    /**
     * 上一更新周期ID 
     */
    @ApiModelProperty("上一更新周期ID")
    private String	 preUpdateCycleId;

    /**
     * 更新周期ID 
     */
    @ApiModelProperty("更新周期ID")
    private String	 updateCycleId;

    /**
     * 更新周期开始时间 
     */
    @ApiModelProperty("更新周期开始时间")
    private Date	 updateCycleStartTime;

    /**
     * 更新周期结束时间 
     */
    @ApiModelProperty("更新周期结束时间")
    private Date	 updateCycleEndTime;

    /**
     * 更新周期类型标识 
     */
    @ApiModelProperty("更新周期类型标识")
    private String	 updateCycleTypeCode;

    /**
     * 周期开始时间 
     */
    @ApiModelProperty("周期开始时间")
    private Date	 cycleStartTime;

    /**
     * 周期结束时间 
     */
    @ApiModelProperty("周期结束时间")
    private Date	 cycleEndTime;

    /**
     * 周期类型标识 
     */
    @ApiModelProperty("周期类型标识")
    private String	 cycleTypeCode;

    /**
     * 周期阶段资料记录ID 
     */
    @ApiModelProperty("周期阶段资料记录ID")
    private String	 cycleStageDataId;

    /**
     * 末级周期计算模型ID 
     */
    @ApiModelProperty("末级周期计算模型ID")
    private String	 lastCycleCalcModelId;

    /**
     * 过程中间周期计算模型ID 
     */
    @ApiModelProperty("过程中间周期计算模型ID")
    private String	 processCycleCalcModelId;

    /**
     * 子周期计算模型ID 
     */
    @ApiModelProperty("子周期计算模型ID")
    private String	 subCycleCalcModelId;

    /**
     * 中期计算模型ID 
     */
    @ApiModelProperty("中期计算模型ID")
    private String	 midCycleCalcModelId;

    /**
     * 父周期计算模型ID 
     */
    @ApiModelProperty("父周期计算模型ID")
    private String	 parentCycleCalcModelId;

    /**
     * 父子中过程周期类型 PARENT_CYCLE:父周期 MID_CYCLE:中期 SUB_CYCLE:子周期 PROCESS_CYCLE:过程周期
     */
    @ApiModelProperty("父子中过程周期类型")
    private String	 parentSubMidCycleType;

    /**
     * 创建于空间ID 
     */
    @ApiModelProperty("创建于空间ID")
    private String	 spaceId;

    /**
     * 目标得分单位 
     */
    @ApiModelProperty("目标得分单位")
    private String	 targetScoreUnit;
/**
     * 资金单位
     */
    @ApiModelProperty("资金单位")
    private String	 fundUnit;

    /**
     * 操作人就职记录ID
     */
    @ApiModelProperty("操作人就职记录ID")
    private String	 operationInductionId;

    /**
     * 是否末级周期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否末级周期")
    private String	 isLastCycle;

    /**
     * 实体账户ID
     */
    @ApiModelProperty("实体账户ID")
    private String	 physicalAccountId;
/**
     * 自定义字段1
     */
    @NotNull(message = "自定义字段1不能为空")
@ApiModelProperty("自定义字段1")
    private String	 customField1;

    /**
     * 自定义字段2
     */
    @NotNull(message = "自定义字段2不能为空")
@ApiModelProperty("自定义字段2")
    private String	 customField2;

    /**
     * 自定义字段3
     */
    @NotNull(message = "自定义字段3不能为空")
@ApiModelProperty("自定义字段3")
    private String	 customField3;
/**
     * 进度值（数值） 
     */
    @ApiModelProperty("进度值（数值）")
    private Double	 progressValue;

    /**
     * 实际值（数值） 
     */
    @ApiModelProperty("实际值（数值）")
    private Double	 actualValue;

    /**
     * 预算支出金额 
     */
    @ApiModelProperty("预算支出金额")
    private Double	 budgetDisburse;
/**
     * 审核的计算场景 PLAN_TARGET_CALC:规划目标计算 PLAN_FINACE_UPDATE:规划财务更新 PLAN_TARGET_AND_FINACE_CALC:规划目标与财务计算
     */
    @NotNull(message = "审核的计算场景不能为空")
@ApiModelProperty("审核的计算场景")
    private String	 approveCalcScene;
/**
     * 数据结果ID 
     */
    @ApiModelProperty("数据结果ID ")
    private String	 dataResultId;

    /**
     * 科目ID 
     */
    @ApiModelProperty("科目ID")
    private String	 accountSubjectld;

    /**
     * 归属周期ID 
     */
    @NotNull(message = "归属周期ID不能为空")
@ApiModelProperty("归属周期ID")
    private String	 cycleId;

    /**
     * 归属内容表主键ID 
     */
    @NotNull(message = "归属内容表主键ID不能为空")
@ApiModelProperty("归属内容表主键ID")
    private String	 entityId;

    /**
     * 数据归属内容表主键ID 
     */
    @NotNull(message = "数据归属内容表主键ID不能为空")
@ApiModelProperty("数据归属内容表主键ID")
    private String	 belongToContentId;

    /**
     * 主题内容ID 
     */
    @NotNull(message = "主题内容ID不能为空")
@ApiModelProperty("主题内容ID")
    private String	 themeContentId;
/**
     * 自定义字段4 
     */
    @NotNull(message = "自定义字段4不能为空")
@ApiModelProperty("自定义字段4")
    private String	 customField4;

    /**
     * 自定义字段5 
     */
    @NotNull(message = "自定义字段5不能为空")
@ApiModelProperty("自定义字段5")
    private String	 customField5;

    /**
     * 自定义字段6 
     */
    @NotNull(message = "自定义字段6不能为空")
@ApiModelProperty("自定义字段6")
    private String	 customField6;
/**
     * 自定义字段7 
     */
    @NotNull(message = "自定义字段7不能为空")
@ApiModelProperty("自定义字段7")
    private String	 customField7;
/**
     * 被评对象目标周期ID 
     */
    @ApiModelProperty("被评对象目标周期ID")
    private String	 evaObjTargetCycleId;
/**
     * 上级被评对象目标周期标识 
     */
    @ApiModelProperty("上级被评对象目标周期标识")
    private String	 parentEvaObjTargetCycleId;
/**
     * 是否开启MQ消息队列 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否开启MQ消息队列")
    private String	 isOpenMq;
/**
     * 周期模式 FATHER_SON_CYCLE:父子周期 SINGLE_CYCLE:单周期 IRREGULAR_CYCLE:不规则周期
     */
    @ApiModelProperty("周期模式")
    private String	 cycleMode;

    /**
     * 关联归属主体标识 
     */
    @ApiModelProperty("关联归属主体标识")
    private String	 accountContentCode;

    /**
     * 是否开启资金到账 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否开启资金到账")
    private String	 isOpenFundsArrival;

}
